Halcon 3D点云和深度图的相互转化

您所在的位置:网站首页 halcon 点云 Halcon 3D点云和深度图的相互转化

Halcon 3D点云和深度图的相互转化

#Halcon 3D点云和深度图的相互转化| 来源: 网络整理| 查看: 265

Halcon 3D点云和深度图的相互转化 MechMaster 分类:机器视觉 发布时间 2022.05.23阅读数 1450 评论数 0

3D点云和深度图1. 如何将灰度图转为3D点云2. 创建一张深度图3. 深度图转点云、点云转深度图4. 代码和图片下载地址

 如何将灰度图转为3D点云这里所说的灰度图转为3D点云,其实是将灰度图像每个像素的行列坐标作为3D点云的X,Y坐标,像素的灰度值(0—255)作为三维点的Z坐标。简单说就是将一张灰度图像拆成了三个数组:X,Y,Z,然后将这三个数组转为点云。

在这里插入图片描述

halcon代码:

dev_get_window (WindowHandle) read_image (Image, '1.bmp') rgb1_to_gray (Image, GrayImage) *获取图像尺寸 get_image_size (GrayImage, Width, Height) gen_rectangle1 (Rectangle, 0, 0, Height-1,Width-1) *从区域生成所有的像素坐标 get_region_points(Rectangle, X, Y) *读取图像的全部像素 get_grayval(GrayImage, X, Y, Z) *创建3D对象模型 gen_object_model_3d_from_points(X, Y, Z, ObjectModel3D) *显示3D模型 visualize_object_model_3d (WindowHandle,ObjectModel3D , [], [], [], [], [], [], [], PoseOut)

2. 创建一张深度图实际上深度图是使用X,Y,Z三个数组的数据创建来的;X,Y是作为图像的行列坐标,Z是实数(表示的是深度/高度),而不是灰度,因为灰度值是0——255之间的整数;Z的值是能够返回高度信息的传感器获取到的,比如点激光、线激光,结构光等。下面是自己赋值得到的一张深度图。在这里插入图片描述

dev_get_window (WindowHandle) read_image (Image, '2.bmp') rgb1_to_gray (Image, GrayImage) *获取图像尺寸 get_image_size (GrayImage, Width, Height) gen_rectangle1 (Rectangle, 0, 0, Height-1,Width-1) *从区域生成所有的像素坐标 get_region_points(Rectangle, X, Y) *读取图像的全部像素 get_grayval(GrayImage, X, Y, Z) *改变Z的值 Z:=Z-256 *对在Rectangle2区域中的像素进行赋值 gen_rectangle1 (Rectangle2, 101, 101, 140,140) get_region_points(Rectangle2, X2, Y2) Z[X2*400+Y2]:=2.4 *创建一张类型为'real'的图像 gen_image_const (ImageConst, 'real', Width, Height) *使用X,Y,Z给图像赋值A set_grayval (ImageConst, X, Y, Z) 3. 深度图转点云、点云转深度图 接下来我们加载一张真正的深度图,它是由线激光采集数据得到的,保存格式为tiff文件; 这是截取了其中一段图像,扫描的是电路板上一些元器件和焊点的高度。

在这里插入图片描述

read_image (Image, '3DImage1.tiff') get_image_size (Image, Width, Height) *1. 这一步是将灰度图转为了X,Y,Z三个数组,当然也就可以转为三位点云了 *获取图像尺寸 get_image_size (Image, Width, Height) gen_rectangle1 (Rectangle, 0, 0, Height-1,Width-1) *从区域生成所有的像素坐标 get_region_points(Rectangle, X, Y) *读取图像的全部像素 get_grayval(Image, X, Y, Z) *2. 再将X,Y,Z这三个数组转回深度图,实际应用中,线机光返回的数据就是Z数组,X,Y数组由自己创建 *创建一个空图像,注意type选择'real' gen_image_const (ImageConst, 'real', Width, Height) *然后使用数组填充图像,这样就完成了 set_grayval (ImageConst, X, Y, Z) *3. 接下来就可以对深度图做进一步处理了。。。 4. 代码和图片下载地址

https://download.csdn.net/download/weixin_38566632/19765495

————————————————版权声明:本文为CSDN博主「MechMaster」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_38566632/article/details/118092691

机器视觉人工智能图像处理深度图

打赏 0

点赞 0

收藏 0

分享

微信 微博 QQ 图片 上一篇:Halcon 元组tuple的基本操作元组tuple的基本操作 下一篇:Halcon缺陷检测——差分


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3